﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Configuration;
using System.IO;
using UygulamaTakbisService.wsTakbisServis;
using UygulamaTakbisService.Classes;

namespace UygulamaTakbisService
{
    public class ExcelDao : IDisposable
    {
        public ExcelDao()
        {
        }

        public byte[] TasinmazExceleYaz(List<Tasinmaz> tasinmazList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            TasinmazYaz tasinmazYaz = new TasinmazYaz();
            byte[] data = tasinmazYaz.Yaz(tasinmazList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] HissedarExceleYaz(List<Hissedar> hissedarList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            HissedarYaz hissedarYaz = new HissedarYaz();
            byte[] data = hissedarYaz.Yaz(hissedarList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] SbiExceleYaz(List<SBI> sbiList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            SbiYaz sbiYaz = new SbiYaz();
            byte[] data = sbiYaz.Yaz(sbiList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] EklentiExceleYaz(List<TasinmazEklenti> eklentiList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            EklentiYaz eklentiYaz = new EklentiYaz();
            byte[] data = eklentiYaz.Yaz(eklentiList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] TeferruatExceleYaz(List<TasinmazTeferruat> teferruatList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            TeferruatYaz teferruatYaz = new TeferruatYaz();
            byte[] data = teferruatYaz.Yaz(teferruatList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] MuhdesatExceleYaz(List<TasinmazMuhdesat> muhdesatList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            MuhdesatYaz muhdesatYaz = new MuhdesatYaz();
            byte[] data = muhdesatYaz.Yaz(muhdesatList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] UstTasinmazOzetExceleYaz(List<UstTasinmazOzet> ustTasinmazOzetList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            UstTasinmazYaz ustTasinmazYaz = new UstTasinmazYaz();
            byte[] data = ustTasinmazYaz.Yaz(ustTasinmazOzetList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] AltTasinmazExceleYaz(List<Tasinmaz> altTasinmazList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            AltTasinmazYaz altTasinmazYaz = new AltTasinmazYaz();
            byte[] data = altTasinmazYaz.Yaz(altTasinmazList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] RehinExceleYaz(List<RehinBilgi> rehinList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            RehinYaz rehinYaz = new RehinYaz();
            byte[] data = rehinYaz.Yaz(rehinList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] TuzelKisiTipExceleYaz(List<TuzelKisiTipBilgi> tuzelKisiTipList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            TuzelKisiTipYaz tuzelKisiTipYaz = new TuzelKisiTipYaz();
            byte[] data = tuzelKisiTipYaz.Yaz(tuzelKisiTipList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] GercekKisiExceleYaz(List<GercekKisiBilgi> gercekKisiList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            GercekKisiYaz gercekKisiYaz = new GercekKisiYaz();
            byte[] data = gercekKisiYaz.Yaz(gercekKisiList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] TuzelKisiExceleYaz(List<TuzelKisiBilgi> tuzelkisiList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            TuzelKisiYaz tuzelKisiYaz = new TuzelKisiYaz();
            byte[] data = tuzelKisiYaz.Yaz(tuzelkisiList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] GercekKisiVatandaslikExceleYaz(List<GercekKisiVatandaslik> GercekKisiVatandaslikBilgiList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            GercekKisiVatandaslikYaz gercekKisiVatandaslikYaz = new GercekKisiVatandaslikYaz();
            byte[] data = gercekKisiVatandaslikYaz.Yaz(GercekKisiVatandaslikBilgiList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] UlkeExceleYaz(List<UlkeBilgi> ulkeBilgiList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            UlkeYaz ulkeYaz = new UlkeYaz();
            byte[] data = ulkeYaz.Yaz(ulkeBilgiList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] OrganizasyonExceleYaz(List<OrganizasyonBilgi> organizasyonBilgiList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            OrganizasyonYaz organizasyonYaz = new OrganizasyonYaz();
            byte[] data = organizasyonYaz.Yaz(organizasyonBilgiList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] IlExceleYaz(List<IlBilgi> ilBilgiList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            IlYaz ilYaz = new IlYaz();
            byte[] data = ilYaz.Yaz(ilBilgiList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] IlceExceleYaz(List<IlceBilgi> ilceBilgiList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            IlceYaz ilceYaz = new IlceYaz();
            byte[] data = ilceYaz.Yaz(ilceBilgiList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] KurumExceleYaz(List<KurumBilgi> kurumBilgiList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            KurumYaz kurumYaz = new KurumYaz();
            byte[] data = kurumYaz.Yaz(kurumBilgiList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] MahalleExceleYaz(List<MahalleBilgi> mahalleBilgiList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            MahalleYaz mahalleYaz = new MahalleYaz();
            byte[] data = mahalleYaz.Yaz(mahalleBilgiList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] BelgeBilgiExceleYaz(List<BelgeBilgi> belgeBilgiList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            BelgeBilgiYaz belgeBilgiYaz = new BelgeBilgiYaz();
            byte[] data = belgeBilgiYaz.Yaz(belgeBilgiList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] TasinmazAlanExceleYaz(List<TasinmazAlanBilgi> tasinmazAlanBilgiList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            TasinmazAlanYaz tasinmazAlanYaz = new TasinmazAlanYaz();
            byte[] data = tasinmazAlanYaz.Yaz(tasinmazAlanBilgiList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] TasinmazCinsExceleYaz(List<TasinmazCinsBilgi> tasinmazCinsBilgiList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            TasinmazCinsYaz tasinmazCinsExceleYaz = new TasinmazCinsYaz();
            byte[] data = tasinmazCinsExceleYaz.Yaz(tasinmazCinsBilgiList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] BagBolExceleYaz(List<BagimsizBolumBilgi> bagimsizBolumBilgiList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            BBYaz bagBolExceleYaz = new BBYaz();
            byte[] data = bagBolExceleYaz.Yaz(bagimsizBolumBilgiList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public byte[] TakbisBilgiSorguLoguYaz(List<TakbisBilgiSorguLog> takbisBilgiSorguLogList)
        {
            string fileName = Guid.NewGuid().ToString() + ".xls";
            string serverKayitYolu = ConfigurationManager.AppSettings["TempDir"].ToString();
            serverKayitYolu = serverKayitYolu + fileName;
            TakbisBilgiSorguLogYaz takbisBilgiSorguLogYaz = new TakbisBilgiSorguLogYaz();
            byte[] data = takbisBilgiSorguLogYaz.Yaz(takbisBilgiSorguLogList, serverKayitYolu);
            if (File.Exists(serverKayitYolu))
                File.Delete(serverKayitYolu);
            return data;
        }

        public void Dispose()
        {
        }
    }
}
